One way in which applications communicate with one another is to use a client-server relationship. In such a relationship, one application functions as a client and provides an interface to the user. The other application is the server application, which resides on an application server and is responsible for the majority of computation and/or data processing.
This client-server relationship can be extended to World Wide Web applications where the client application (typically a Web browser) and the server component (a Web or application server on the Internet) will interact. One approach for Web-based client-server applications to communicate with one another is to use hypertext transfer protocol (HTTP) as a request-response protocol. Traditionally, HTTP is used on the World Wide Web for browser clients to access and download content from Internet Web sites to users' computing environments (e.g., home, corporate network, etc.).
Many computing environments provide rich or sophisticated functionality to their users when the user is acting within the confines of his protected computing environment. For example, a corporate user may have access to proprietary corporate databases while using his desktop computer in his office. However, when a user is outside this environment (e.g., the user is on the road), he may still require access to such functionality.
Most computing environments allow connections originating within the environment to outside locations, but connections originating outside the environment are restricted from accessing the environment. This is typically accomplished through the use of a firewall, for example. Furthermore, some computing environments further restrict outbound network connections to access only HTTP services. This makes it difficult, if not impossible, for a roaming user to access important functionality or services from his protected computing environment.
The problem is perhaps most prevalent for home-based users. For example, it is difficult for users to connect from their personal computer at their home to their corporate servers at work. A dial-up or high-speed Web-based connection often requires client software on the home machine and/or a secure token for authentication. Furthermore, most corporations may not support corporate access using personal computers.
Various prior art approaches have been developed for allowing users to access information from outside a protected computing environment. By way of example, Symmetry Pro from Infowave Software, Inc., is a software service that provides corporate users with wireless access to their corporate e-mail using a wireless handheld device. In particular, e-mail messages that arrive in a user's corporate inbox are encrypted and then delivered via the Symmetry Pro software service to the user's wireless handheld device.
Two other prior art approaches include Fire Extinguisher and Gnu HTTP Tunnel. Both of these products attempt to encapsulate TCP traffic over an HTTP connection, acting as a generic bi-directional proxy. Yet, one significant drawback of such approaches is that they may not provide a desired level of authentication to protect secure communications in certain applications.